function received_private = remove_common_stream(received_signal, decoded_common, ...
    channel, w_c, power_common)
% remove_common_stream - 从接收信号中移除公共流贡献
%
% 输入参数:
%   received_signal - 接收信号
%   decoded_common  - 解码后的公共流
%   channel         - 用户的信道矩阵
%   w_c             - 公共流的预编码向量
%   power_common    - 公共流功率分配系数
%
% 输出参数:
%   received_private - 移除公共流后的接收信号

% 在RSMA中，接收机首先解码公共流，然后从接收信号中减去公共流的贡献
% 这样剩下的信号主要包含该用户的私有流，以及来自其他用户的干扰

% 重构公共流的贡献
common_contribution = sqrt(power_common) * (channel * w_c * decoded_common);

% 从接收信号中减去公共流的贡献
received_private = received_signal - common_contribution;

% 在实际系统中，可能还需要进行通道估计误差的补偿等
% 为简化起见，我们直接输出减去公共流后的信号

end 